package com.keta.foundation.service;

import java.util.List;

import org.springframework.data.jpa.domain.Specification;

import com.keta.foundation.entity.Module;
import com.keta.foundation.util.dwz.Page;

public interface ModuleService {

	Long RootModuleId = 1L;

	/**
	 * 根据parentId获取孩子模块
	 */
	public List<Module> getByParentId(Long parentId);

	public List<Module> getByParentId(Long parentId, Page page);

	/**
	 * 获取所有数据
	 */
	public List<Module> getAll();

	/**
	 * 获取所有数据
	 */
	public List<Module> getAll(Page page);

	/***
	 * 根据specification过滤条件获取数据
	 */
	public List<Module> getAll(Specification<Module> specification, Page page);

	/**
	 * 根据Id获取Module对象
	 */
	public Module get(Long id);

	/**
	 * 创建或者修改Module，有Id则修改，无Id则创建
	 * 
	 * @param module
	 */
	public void saveOrUpdate(Module module);

	/**
	 * 根据ID删除Module，有主外键关联则级联删除
	 */
	public void delete(Long id);

}
